package com.ynet.middleground.contract.service;

import java.util.List;

import javax.validation.Valid;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.contract.bean.AddTemplateParamsReq;
import com.ynet.middleground.contract.bean.DeleteTemplateParamReq;
import com.ynet.middleground.contract.bean.QueryTemplateParamsReq;
import com.ynet.middleground.contract.bean.UpdateTemplateParamReq;
import com.ynet.middleground.contract.dto.TemplateParamDTO;

/**
 * @author liulx
 * @description 模板参数接口定义
 * @date 2020-03-18 22:17
 */
public interface TemplateParamsService {

    /**
     * 根据模板ID查询该模板参数列表信息
     *
     * @param queryTemplateParamsReq 查询模板参数请求类
     * @return 模板参数信息传输对象
     */
    ServiceResult<List<TemplateParamDTO>>
        queryTemplateParamsbyTemplateId(@Valid QueryTemplateParamsReq queryTemplateParamsReq);

    /**
     * 为指定模板添加模板参数信息
     * 
     * @param addTemplateParamsReq 新增模板参数请求类
     * @return 结果标志，以 success 字段值标识 true/false
     */
    ServiceResult addTemplateParams(@Valid AddTemplateParamsReq addTemplateParamsReq);

    /**
     * 根据模板参数 id 修改参数信息
     * 
     * @param updateTemplateParamReq 修改模板参数请求类
     * @return 结果标志，以 success 字段值标识 true/false
     */
    ServiceResult updateParamById(@Valid UpdateTemplateParamReq updateTemplateParamReq);

    /**
     * 删除指定模板参数信息
     *
     * @param deleteTemplateParamReq 删除模板参数请求类
     * @return 结果标志，以 success 字段值标识 true/false
     */
    ServiceResult deleteParamById(@Valid DeleteTemplateParamReq deleteTemplateParamReq);

}
